﻿//N位同学站成一排，音乐老师要请其中的(N - K) 位同学出列，使得剩下的K位同学排成合唱队形。
//
//合唱队形是指这样的一种队形：
//设K位同学从左到右依次编号为 1，2…，K，他们的身高分别为 T1，T2，…，TK，  
//则他们的身高满足
//
//t1<t2...<ti>ti + 1>... > tk−1> tk(1≤i≤k)
//
//你的任务是，已知所有 n 位同学的身高，计算最少需要几位同学出列，可以使得剩下的同学排成合唱队形。
//
//数据范围：1≤n≤1000  ，身高满足130≤ti≤230
//输入描述：
//	第一行输入一个正整数 n 表示同学的总数。
//	第二行有 n 个整数，用空格分隔，第 i 个整数 ti 是第 i 位同学的身高(厘米)。
//输出描述：
//	输出仅有一个整数，即最少需要几个同学出列
//输入：
//	8
//	186 186 150 200 160 130 197 220
//输出：
//	4

#include <iostream>
using namespace std;
const int N = 1010;
int n;
int arr[N], f[N], g[N];
int main() {
    cin >> n;
    for (int i = 1; i <= n; i++) cin >> arr[i];
    // 从前向后
    for (int i = 1; i <= n; i++) {
        f[i] = 1;
        for (int j = 1; j < i; j++) {
            if (arr[j] < arr[i]) {
                f[i] = max(f[i], f[j] + 1);
            }
        }
    }
    // 从后向前
    for (int i = n; i >= 1; i--) {
        g[i] = 1;
        for (int j = i + 1; j <= n; j++) {
            if (arr[i] > arr[j]) {
                g[i] = max(g[i], g[j] + 1);
            }
        }
    }
    int len = 0;
    for (int i = 1; i <= n; i++) {
        len = max(len, f[i] + g[i] - 1);
    }
    cout << n - len << endl;
    return 0;
}
